Internet Protocol (IP) multicast is a technology for delivering IP traffic from one (or more) source to many receivers. IP multicast technology has been specified in a number of Internet Engineering Task Force (IETF) Request for Comments (RFCs), such as, RFC 1075, RFC 1584, RFC 1585, RFC 2117, RFC 2189, RFC 2362 and RFC 4601.
Multicast network technology allows one or more hosts, as multicast source(s), to transmit a single data packet to multiple hosts. When compared with unicast, no matter how many receivers exist, the data packet is transmitted by the source only once. In contrast, using traditional unicast techniques, the data source has to send as many copies of the data packet as the number of the receivers. Therefore, multicast is a substantially more efficient data transmission technique and is particularly applicable in point-to-multipoint or multipoint-to-multipoint application environments.
When a host (or “receiver”) desires to receive multicast data, it joins a multicast group, which can be identified by a network address (e.g., a Class D IP address). When a multicast-enabled router receives the message indicating that the host seeks to join in the multicast group, the router can establish a multicast tree between a source and the receiver so as to direct the multicast data to reach the receiver. Similarly, when the receiver exits from the group, the multicast router may remove the connection between the multicast source and the receiver.
IP multicast technology is widely deployed in many systems such as stock exchanges, content-delivery networks (CDNs), Internet Protocol Television (IPTV) applications, and distance learning. Some of the most widely-used multicast protocols are of the Protocol-Independent Multicast (PIM) family, including PIM-Sparse Mode (PIM-SM) and PIM Source-Specific Multicast (PIM-SSM). PIM-SM/SSM depends on unicast routing protocols such as Open Shortest Path First (OSPF) v2 (as specified in RFC 2328) or v3 (as specified in RFC 2740) to build a multicast distribution tree.
Because multicast traffic often involves large, largely continuous streams of data (e.g., such as a live audio-visual feed of a sporting event or concert) being delivered to many recipients, it is imperative to avoid duplication of forwarding effort for this time-sensitive, high-volume traffic as much as possible. For example, if two routers that receive copies of multicast packets from a same source, it is not very efficient for both of these routers to forward the packets onto a same network segment toward one or more recipients, because this would result in duplicated traffic and thus a waste of bandwidth and processing power. Although there are some techniques for preventing multicast traffic from being unnecessarily duplicated in a network segment, these techniques can result in other problems, such as an increased difficulty of managing particular traffic paths for traffic. Accordingly, there remains a strong need for systems that can prevent multicast traffic from being unnecessarily duplicated without these problems.